home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / dev / src / ConfigFileSrc.lha / ConfigFileSrc12 / Library / Funcs / WriteBuffer.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-10-02  |  1016 b   |  42 lines

  1. /*
  2. **        $PROJECT: ConfigFile.library
  3. **        $FILE: WriteBuffer.c
  4. **        $DESCRIPTION: The WriteBuffer system
  5. **
  6. **        (C) Copyright 1996-1997 Marcel Karas
  7. **             All Rights Reserved.
  8. */
  9.  
  10. #include "WriteBuffer.h"
  11.  
  12. IMPORT struct DosLibrary    * DOSBase;
  13. IMPORT struct ExecBase        * SysBase;
  14.  
  15. BOOL AllocWBuffer ( iCFHeader * Header , WBHeader * WBH )
  16. {
  17.     if ( WBH->StartPtr = MyAllocPooled (Header->MemPool, Header->WBufLength + 256) )
  18.     {
  19.         WBH->MemPool    = Header->MemPool;
  20.         WBH->TotalWrite= 0;
  21.         WBH->FH            = Header->FileHandle;
  22.  
  23.         WBH->EndPtr        = WBH->StartPtr + Header->WBufLength;
  24.         WBH->LastPtr    = WBH->StartPtr;
  25.  
  26.         return (TRUE);
  27.     }
  28.     
  29.     return (FALSE);
  30. }
  31.  
  32. VOID FreeWBuffer ( WBHeader * WBH )
  33. {
  34.     if ( WBH->StartPtr != WBH->LastPtr )
  35.         WBH->TotalWrite += Write (WBH->FH, WBH->StartPtr, WBH->LastPtr - WBH->StartPtr);
  36.  
  37.     MyFreePooled (WBH->MemPool, WBH->StartPtr, (WBH->EndPtr - WBH->StartPtr) + 256);
  38. }
  39.  
  40. VOID WriteWBuffer ( WBHeader * WBH , STRPTR NewPtr )
  41. { WBH->TotalWrite += Write (WBH->FH, WBH->StartPtr, NewPtr - WBH->StartPtr); }
  42.